/**
 * 
 */
package com.onlinemathuracrud.dao.genericdao;

import java.io.Serializable;
import java.util.List;

/**
 * @author Amit Kashyap
 * @createdDate Sep 7, 2013
 * @createdTime 2:38:54 AM
 */
public interface GenericDao<E,PK  extends Serializable> {

    PK save(E newInstance);

    void update(E transientObject);

    void saveOrUpdate(E transientObject);
    
    void merge(E transientObject); 

    void delete(E persistentObject);

    E findById(PK id);

    List<E> findAll();

    List<E> findAllByProperty(String propertyName,Object value);
    
     void printStatics();

}
